<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title></title>
  <!--引入Vue-->
  <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div class="root">
  <div>
    <span v-text="n"></span>
  </div>
  <div>
    <span v-big="n"></span>
  </div>
  <button @click="n++">+1</button>
  <div>
    <input type="text" :value="n"/>
  </div>
  <div>
    <input type="text" v-fbind="n"/>
  </div>
</div>
</body>

<script type="text/javascript">
  /**
   * v-big,将绑定的数值放大10倍
   * v-fbind,与v-bind相比,可以让绑定的input元素自动获取焦点
   */
  new Vue({
    el: '.root',
    data: {
      name: 'Jack',
      n: 1
    },
    directives:{
      /**
       * big被调用:1.指令与元素绑定成功时,2.指令所在的模板被重新解析时,不光是所用到的数据被更新时
       */
      big(element,binding){
        element.innerText = binding.value*10
      },
      fbind:{
        /**
         * 指令与元素绑定成功时调用
         */
        bind(element,binding){
          element.value = binding.value
        },
        /**
         * 指令所在元素挂载到页面上时调用
         */
        inserted(element,binding){
          element.focus()
        },
        /**
         * 指令所在的模板被重新解析时调用
         */
        update(element,binding){
          element.value = binding.value
          element.focus()
        }
      },
    }
  })

  /**
   * 全局写法
   */
  // Vue.directive('big',function(element,binding) {
  //   element.innerText = binding.value*10
  // })
</script>
</html>
